(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 10.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[     40811,        906]
NotebookOptionsPosition[     38714,        830]
NotebookOutlinePosition[     39051,        845]
CellTagsIndexPosition[     39008,        842]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
 RowBox[{
  RowBox[{"input", "=", 
   RowBox[{
   "BinaryReadList", "[", 
    "\"\</home/dennis/P/RE-book/decrypt_dat_file/castle.dbf\>\"", "]"}]}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"blocks", "=", 
   RowBox[{"Partition", "[", 
    RowBox[{"input", ",", "81"}], "]"}]}], ";"}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"stat", "=", 
  RowBox[{"Sort", "[", 
   RowBox[{
    RowBox[{"Tally", "[", "blocks", "]"}], ",", 
    RowBox[{
     RowBox[{
      RowBox[{"#1", "[", 
       RowBox[{"[", "2", "]"}], "]"}], ">", 
      RowBox[{"#2", "[", 
       RowBox[{"[", "2", "]"}], "]"}]}], "&"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 InterpretationBox[
  TagBox[
   FrameBox[GridBox[{
      {
       ItemBox[
        TagBox[
         RowBox[{"{", 
          RowBox[{
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "103", ",", "2", ",", "116", ",", "113", ",", "102", 
               ",", "118", ",", "25", ",", "99", ",", "8", ",", "19", ",", 
               "23", ",", "116", ",", "125", ",", "107", ",", "25", ",", "99",
                ",", "109", ",", "114", ",", "102", ",", "14", ",", "121", 
               ",", "115", ",", "31", ",", "9", ",", "117", ",", "113", ",", 
               "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", "122", 
               ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", 
               "124", ",", "106", ",", "16", ",", "20", ",", "104", ",", 
               "119", ",", "8", ",", "109", ",", "26", ",", "106", ",", "9", 
               ",", "97", ",", "13", ",", "99", ",", "15", ",", "119", ",", 
               "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
               "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
               ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", 
               "5", ",", "125", ",", "125", ",", "99", ",", "126", ",", "119",
                ",", "102", ",", "30", ",", "122", ",", "2", ",", "117"}], 
              "}"}], ",", "1739"}], "}"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "100", ",", "2", ",", "116", ",", "113", ",", "102", 
               ",", "118", ",", "25", ",", "99", ",", "8", ",", "19", ",", 
               "23", ",", "116", ",", "125", ",", "107", ",", "25", ",", "99",
                ",", "109", ",", "114", ",", "102", ",", "14", ",", "121", 
               ",", "115", ",", "31", ",", "9", ",", "117", ",", "113", ",", 
               "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", "122", 
               ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", 
               "124", ",", "106", ",", "16", ",", "20", ",", "104", ",", 
               "119", ",", "8", ",", "109", ",", "26", ",", "106", ",", "9", 
               ",", "97", ",", "13", ",", "99", ",", "15", ",", "119", ",", 
               "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
               "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
               ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", 
               "5", ",", "125", ",", "125", ",", "99", ",", "126", ",", "119",
                ",", "102", ",", "30", ",", "122", ",", "2", ",", "117"}], 
              "}"}], ",", "1422"}], "}"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "101", ",", "2", ",", "116", ",", "113", ",", "102", 
               ",", "118", ",", "25", ",", "99", ",", "8", ",", "19", ",", 
               "23", ",", "116", ",", "125", ",", "107", ",", "25", ",", "99",
                ",", "109", ",", "114", ",", "102", ",", "14", ",", "121", 
               ",", "115", ",", "31", ",", "9", ",", "117", ",", "113", ",", 
               "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", "122", 
               ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", 
               "124", ",", "106", ",", "16", ",", "20", ",", "104", ",", 
               "119", ",", "8", ",", "109", ",", "26", ",", "106", ",", "9", 
               ",", "97", ",", "13", ",", "99", ",", "15", ",", "119", ",", 
               "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
               "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
               ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", 
               "5", ",", "125", ",", "125", ",", "99", ",", "126", ",", "119",
                ",", "102", ",", "30", ",", "122", ",", "2", ",", "117"}], 
              "}"}], ",", "1012"}], "}"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "120", ",", "2", ",", "116", ",", "113", ",", "102", 
               ",", "118", ",", "25", ",", "99", ",", "8", ",", "19", ",", 
               "23", ",", "116", ",", "125", ",", "107", ",", "25", ",", "99",
                ",", "109", ",", "114", ",", "102", ",", "14", ",", "121", 
               ",", "115", ",", "31", ",", "9", ",", "117", ",", "113", ",", 
               "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", "122", 
               ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", 
               "124", ",", "106", ",", "16", ",", "20", ",", "104", ",", 
               "119", ",", "8", ",", "109", ",", "26", ",", "106", ",", "9", 
               ",", "97", ",", "13", ",", "99", ",", "15", ",", "119", ",", 
               "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
               "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
               ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", 
               "5", ",", "125", ",", "125", ",", "99", ",", "126", ",", "119",
                ",", "102", ",", "30", ",", "122", ",", "2", ",", "117"}], 
              "}"}], ",", "377"}], "}"}], ",", 
           TemplateBox[{"13937"},
            "OutputSizeLimit`Skeleton",
            DisplayFunction->(FrameBox[
              RowBox[{"\" \[CenterEllipsis]\"", #, "\"\[CenterEllipsis] \""}],
               Background -> GrayLevel[0.75], 
              BaseStyle -> {
               "Deploy", FontColor -> GrayLevel[1], FontSize -> Smaller, 
                ShowStringCharacters -> False}, BaselinePosition -> Baseline, 
              ContentPadding -> False, FrameMargins -> 1, FrameStyle -> 
              GrayLevel[0.75], RoundingRadius -> 7]& )], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "2", ",", "74", ",", "49", ",", "113", ",", "21", 
               ",", "62", ",", "88", ",", "39", ",", "71", ",", "68", ",", 
               "23", ",", "63", ",", "51", ",", "36", ",", "78", ",", "48", 
               ",", "108", ",", "114", ",", "102", ",", "14", ",", "121", ",",
                "115", ",", "31", ",", "9", ",", "117", ",", "113", ",", 
               "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", "122", 
               ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", 
               "124", ",", "106", ",", "16", ",", "20", ",", "104", ",", 
               "119", ",", "8", ",", "109", ",", "26", ",", "106", ",", "9", 
               ",", "97", ",", "13", ",", "99", ",", "15", ",", "119", ",", 
               "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
               "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
               ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", 
               "5", ",", "125", ",", "125", ",", "99", ",", "126", ",", "119",
                ",", "102", ",", "30", ",", "122", ",", "2", ",", "117"}], 
              "}"}], ",", "1"}], "}"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "1", ",", "74", ",", "59", ",", "113", ",", "45", 
               ",", "56", ",", "86", ",", "52", ",", "91", ",", "19", ",", 
               "64", ",", "60", ",", "60", ",", "63", ",", "25", ",", "38", 
               ",", "59", ",", "59", ",", "42", ",", "14", ",", "53", ",", 
               "38", ",", "77", ",", "66", ",", "38", ",", "113", ",", "38", 
               ",", "75", ",", "4", ",", "43", ",", "84", ",", "63", ",", 
               "101", ",", "64", ",", "43", ",", "79", ",", "64", ",", "40", 
               ",", "57", ",", "16", ",", "91", ",", "46", ",", "119", ",", 
               "69", ",", "40", ",", "84", ",", "117", ",", "9", ",", "97", 
               ",", "13", ",", "99", ",", "15", ",", "119", ",", "20", ",", 
               "105", ",", "117", ",", "98", ",", "103", ",", "118", ",", "1",
                ",", "126", ",", "29", ",", "97", ",", "122", ",", "17", ",", 
               "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", "125", 
               ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",",
                "30", ",", "122", ",", "2", ",", "117"}], "}"}], ",", "1"}], 
            "}"}], ",", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
              "80", ",", "2", ",", "74", ",", "49", ",", "113", ",", "49", 
               ",", "51", ",", "92", ",", "39", ",", "8", ",", "92", ",", 
               "81", ",", "116", ",", "62", ",", "57", ",", "80", ",", "46", 
               ",", "40", ",", "114", ",", "36", ",", "75", ",", "56", ",", 
               "33", ",", "76", ",", "9", ",", "55", ",", "56", ",", "59", 
               ",", "81", ",", "65", ",", "45", ",", "28", ",", "60", ",", 
               "55", ",", "93", ",", "39", ",", "90", ",", "28", ",", "124", 
               ",", "106", ",", "16", ",", "20", ",", "104", ",", "119", ",", 
               "8", ",", "109", ",", "26", ",", "106", ",", "9", ",", "97", 
               ",", "13", ",", "99", ",", "15", ",", "119", ",", "20", ",", 
               "105", ",", "117", ",", "98", ",", "103", ",", "118", ",", "1",
                ",", "126", ",", "29", ",", "97", ",", "122", ",", "17", ",", 
               "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", "125", 
               ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",",
                "30", ",", "122", ",", "2", ",", "117"}], "}"}], ",", "1"}], 
            "}"}]}], "}"}],
         Short[#, 20]& ],
        BaseStyle->{Deployed -> False},
        StripOnInput->False]},
      {GridBox[{
         {
          TagBox[
           TooltipBox[
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource[
                "FEStrings", "sizeBriefExplanation"], StandardForm],
               ImageSizeCache->{74., {2., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarCategory",
             StripOnInput->False],
            StyleBox[
             DynamicBox[
              ToBoxes[
               FEPrivate`FrontEndResource["FEStrings", "sizeExplanation"], 
               StandardForm]], DynamicUpdating -> True, StripOnInput -> 
             False]],
           Annotation[#, 
            Style[
             Dynamic[
              FEPrivate`FrontEndResource["FEStrings", "sizeExplanation"]], 
             DynamicUpdating -> True], "Tooltip"]& ], 
          ButtonBox[
           PaneSelectorBox[{False->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowLess"], 
                StandardForm],
               ImageSizeCache->{67., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControl",
             StripOnInput->False], True->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowLess"], 
                StandardForm],
               ImageSizeCache->{67., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControlActive",
             StripOnInput->False]}, Dynamic[
             CurrentValue["MouseOver"]],
            Alignment->Center,
            FrameMargins->0,
            ImageSize->{Automatic, 25}],
           Appearance->None,
           
           ButtonFunction:>OutputSizeLimit`ButtonFunction[
            Identity, 145, 29912760857284787152, 20/2],
           Enabled->True,
           Evaluator->Automatic,
           Method->"Queued"], 
          ButtonBox[
           PaneSelectorBox[{False->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowMore"], 
                StandardForm],
               ImageSizeCache->{73., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControl",
             StripOnInput->False], True->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowMore"], 
                StandardForm],
               ImageSizeCache->{73., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControlActive",
             StripOnInput->False]}, Dynamic[
             CurrentValue["MouseOver"]],
            Alignment->Center,
            FrameMargins->0,
            ImageSize->{Automatic, 25}],
           Appearance->None,
           
           ButtonFunction:>OutputSizeLimit`ButtonFunction[
            Identity, 145, 29912760857284787152, 20 2],
           Enabled->True,
           Evaluator->Automatic,
           Method->"Queued"], 
          ButtonBox[
           PaneSelectorBox[{False->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowAll"], 
                StandardForm],
               ImageSizeCache->{56., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControl",
             StripOnInput->False], True->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeShowAll"], 
                StandardForm]],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControlActive",
             StripOnInput->False]}, Dynamic[
             CurrentValue["MouseOver"]],
            Alignment->Center,
            FrameMargins->0,
            ImageSize->{Automatic, 25}],
           Appearance->None,
           
           ButtonFunction:>OutputSizeLimit`ButtonFunction[
            Identity, 145, 29912760857284787152, Infinity],
           Enabled->True,
           Evaluator->Automatic,
           Method->"Queued"], 
          ButtonBox[
           PaneSelectorBox[{False->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeChangeLimit"], 
                StandardForm],
               ImageSizeCache->{100., {0., 8.}}],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControl",
             StripOnInput->False], True->
            StyleBox[
             StyleBox[
              DynamicBox[ToBoxes[
                FEPrivate`FrontEndResource["FEStrings", "sizeChangeLimit"], 
                StandardForm]],
              StripOnInput->False,
              DynamicUpdating->True], "SuggestionsBarControlActive",
             StripOnInput->False]}, Dynamic[
             CurrentValue["MouseOver"]],
            Alignment->Center,
            FrameMargins->0,
            ImageSize->{Automatic, 25}],
           Appearance->None,
           ButtonFunction:>FrontEndExecute[{
              FrontEnd`SetOptions[
              FrontEnd`$FrontEnd, 
               FrontEnd`PreferencesSettings -> {"Page" -> "Evaluation"}], 
              FrontEnd`FrontEndToken["PreferencesDialog"]}],
           Evaluator->None,
           Method->"Preemptive"]}
        },
        AutoDelete->False,
        FrameStyle->GrayLevel[0.85],
        GridBoxDividers->{"Columns" -> {False, {True}}},
        GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
        GridBoxSpacings->{"Columns" -> {{2}}}]}
     },
     DefaultBaseStyle->"Column",
     GridBoxAlignment->{
      "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
       "RowsIndexed" -> {}},
     GridBoxDividers->{
      "Columns" -> {{False}}, "ColumnsIndexed" -> {}, "Rows" -> {{False}}, 
       "RowsIndexed" -> {}},
     GridBoxItemSize->{
      "Columns" -> {{Automatic}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, 
       "RowsIndexed" -> {}},
     GridBoxSpacings->{"Columns" -> {
         Offset[0.27999999999999997`], {
          Offset[0.5599999999999999]}, 
         Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
         Offset[0.2], 
         Offset[1.2], {
          Offset[0.4]}, 
         Offset[0.2]}, "RowsIndexed" -> {}}],
    Background->RGBColor[0.9657, 0.9753, 0.9802],
    FrameMargins->{{12, 12}, {0, 15}},
    FrameStyle->GrayLevel[0.85],
    RoundingRadius->5,
    StripOnInput->False],
   Deploy,
   DefaultBaseStyle->"Deploy"],
  Out[145]]], "Output",
 CellChangeTimes->{3.670930733340349*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BitXor", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"stat", "[", 
     RowBox[{"[", "2", "]"}], "]"}], "[", 
    RowBox[{"[", "1", "]"}], "]"}], ",", 
   RowBox[{
    RowBox[{"stat", "[", 
     RowBox[{"[", "3", "]"}], "]"}], "[", 
    RowBox[{"[", "1", "]"}], "]"}]}], "]"}]], "Input",
 CellChangeTimes->{{3.6709312118299637`*^9, 3.6709312118587303`*^9}, {
  3.670931363834755*^9, 3.67093136625436*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.670931212125078*^9, 3.670931366573524*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"key", "=", 
  RowBox[{
   RowBox[{"stat", "[", 
    RowBox[{"[", "1", "]"}], "]"}], "[", 
   RowBox[{"[", "1", "]"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.670931427705597*^9, 3.6709314324817953`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "80", ",", "103", ",", "2", ",", "116", ",", "113", ",", "102", ",", "118", 
   ",", "25", ",", "99", ",", "8", ",", "19", ",", "23", ",", "116", ",", 
   "125", ",", "107", ",", "25", ",", "99", ",", "109", ",", "114", ",", 
   "102", ",", "14", ",", "121", ",", "115", ",", "31", ",", "9", ",", "117", 
   ",", "113", ",", "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", 
   "122", ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", "124", 
   ",", "106", ",", "16", ",", "20", ",", "104", ",", "119", ",", "8", ",", 
   "109", ",", "26", ",", "106", ",", "9", ",", "97", ",", "13", ",", "99", 
   ",", "15", ",", "119", ",", "20", ",", "105", ",", "117", ",", "98", ",", 
   "103", ",", "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
   ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", 
   "125", ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",", 
   "30", ",", "122", ",", "2", ",", "117"}], "}"}]], "Output",
 CellChangeTimes->{3.6709314330426702`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToASCII", "[", "val_", "]"}], ":=", 
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{"val", "==", "0"}], ",", "\"\< \>\"", ",", 
    RowBox[{"FromCharacterCode", "[", 
     RowBox[{"val", ",", "\"\<PrintableASCII\>\""}], "]"}]}], 
   "]"}]}]], "Input",
 CellChangeTimes->{{3.670931556066234*^9, 3.6709315618673267`*^9}, {
  3.670931623503179*^9, 3.670931625948389*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"DecryptBlockASCII", "[", "blk_", "]"}], ":=", 
  RowBox[{"Map", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"ToASCII", "[", "#", "]"}], "&"}], ",", 
    RowBox[{"BitXor", "[", 
     RowBox[{"key", ",", "blk"}], "]"}]}], "]"}]}]], "Input",
 CellChangeTimes->{
  3.670931583004979*^9, {3.670931880366951*^9, 3.6709318809243813`*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DecryptBlockASCII", "[", 
  RowBox[{"blocks", "[", 
   RowBox[{"[", "1", "]"}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.670931598339509*^9, 3.670931598381896*^9}, {
  3.670931630152618*^9, 3.67093163898569*^9}, {3.670931883723386*^9, 
  3.67093188427381*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>"}], "}"}]], "Output",
 CellChangeTimes->{{3.67093159867622*^9, 3.67093163929804*^9}, 
   3.670931884602343*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DecryptBlockASCII", "[", 
  RowBox[{"blocks", "[", 
   RowBox[{"[", "2", "]"}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.6709316451965017`*^9, 3.670931645265011*^9}, {
  3.670931886759666*^9, 3.6709318878421373`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\" \"\>", ",", "\<\"e\"\>", ",", "\<\"H\"\>", ",", "\<\"E\"\>", 
   ",", "\<\" \"\>", ",", "\<\"W\"\>", ",", "\<\"E\"\>", ",", "\<\"E\"\>", 
   ",", "\<\"D\"\>", ",", "\<\" \"\>", ",", "\<\"O\"\>", ",", "\<\"F\"\>", 
   ",", "\<\" \"\>", ",", "\<\"C\"\>", ",", "\<\"R\"\>", ",", "\<\"I\"\>", 
   ",", "\<\"M\"\>", ",", "\<\"E\"\>", ",", "\<\" \"\>", ",", "\<\"B\"\>", 
   ",", "\<\"E\"\>", ",", "\<\"A\"\>", ",", "\<\"R\"\>", ",", "\<\"S\"\>", 
   ",", "\<\" \"\>", ",", "\<\"B\"\>", ",", "\<\"I\"\>", ",", "\<\"T\"\>", 
   ",", "\<\"T\"\>", ",", "\<\"E\"\>", ",", "\<\"R\"\>", ",", "\<\" \"\>", 
   ",", "\<\"F\"\>", ",", "\<\"R\"\>", ",", "\<\"U\"\>", ",", "\<\"I\"\>", 
   ",", "\<\"T\"\>", ",", "\<\"\:f20e\"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.670931645602414*^9, 3.6709318884953737`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DecryptBlockASCII", "[", 
  RowBox[{"blocks", "[", 
   RowBox[{"[", "3", "]"}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.670931647689391*^9, 3.670931647830868*^9}, {
  3.670931890147521*^9, 3.670931890664956*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\" \"\>", ",", "\<\"\:f203\"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.670931648130919*^9, 3.670931890841489*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DecryptBlockASCII", "[", 
  RowBox[{"blocks", "[", 
   RowBox[{"[", "4", "]"}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.670931650067061*^9, 3.670931650529533*^9}, {
  3.670931892613759*^9, 3.670931893288027*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\" \"\>", ",", "\<\"f\"\>", ",", "\<\"H\"\>", ",", "\<\"O\"\>", 
   ",", "\<\" \"\>", ",", "\<\"K\"\>", ",", "\<\"N\"\>", ",", "\<\"O\"\>", 
   ",", "\<\"W\"\>", ",", "\<\"S\"\>", ",", "\<\" \"\>", ",", "\<\"W\"\>", 
   ",", "\<\"H\"\>", ",", "\<\"A\"\>", ",", "\<\"T\"\>", ",", "\<\" \"\>", 
   ",", "\<\"E\"\>", ",", "\<\"V\"\>", ",", "\<\"I\"\>", ",", "\<\"L\"\>", 
   ",", "\<\" \"\>", ",", "\<\"L\"\>", ",", "\<\"U\"\>", ",", "\<\"R\"\>", 
   ",", "\<\"K\"\>", ",", "\<\"S\"\>", ",", "\<\" \"\>", ",", "\<\"I\"\>", 
   ",", "\<\"N\"\>", ",", "\<\" \"\>", ",", "\<\"T\"\>", ",", "\<\"H\"\>", 
   ",", "\<\"E\"\>", ",", "\<\" \"\>", ",", "\<\"H\"\>", ",", "\<\"E\"\>", 
   ",", "\<\"A\"\>", ",", "\<\"R\"\>", ",", "\<\"T\"\>", ",", "\<\"S\"\>", 
   ",", "\<\" \"\>", ",", "\<\"O\"\>", ",", "\<\"F\"\>", ",", "\<\" \"\>", 
   ",", "\<\"M\"\>", ",", "\<\"E\"\>", ",", "\<\"N\"\>", 
   ",", "\<\"\:f21f\"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>", 
   ",", "\<\" \"\>", ",", "\<\" \"\>", ",", "\<\" \"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.670931650732325*^9, 3.670931893653222*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"DecryptBlock", "[", "blk_", "]"}], ":=", 
  RowBox[{"BitXor", "[", 
   RowBox[{"key", ",", "blk"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.670931937012772*^9, 3.67093193825114*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"decrypted", "=", 
   RowBox[{"Map", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"DecryptBlock", "[", "#", "]"}], "&"}], ",", "blocks"}], 
    "]"}]}], ";"}]], "Input",
 CellChangeTimes->{3.670931963791108*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BinaryWrite", "[", 
  RowBox[{"\"\</home/dennis/P/RE-book/decrypt_dat_file/tmp\>\"", ",", 
   RowBox[{"Flatten", "[", "decrypted", "]"}]}], "]"}]], "Input",
 CellChangeTimes->{3.6709319822098846`*^9}],

Cell[BoxData["\<\"/home/dennis/P/RE-book/decrypt_dat_file/tmp\"\>"], "Output",
 CellChangeTimes->{{3.67093198274972*^9, 3.670931996100762*^9}, 
   3.670932585342855*^9, 3.67093296788418*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Close", "[", "\"\</home/dennis/P/RE-book/decrypt_dat_file/tmp\>\"", 
  "]"}]], "Input",
 CellChangeTimes->{{3.670931987237866*^9, 3.67093199417323*^9}}],

Cell[BoxData["\<\"/home/dennis/P/RE-book/decrypt_dat_file/tmp\"\>"], "Output",
 CellChangeTimes->{
  3.670931994396646*^9, {3.6709325805959473`*^9, 3.67093258623586*^9}, 
   3.670932968526528*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"blocks", "[", 
  RowBox[{"[", "2", "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.6709323341744223`*^9, 3.6709323355799017`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "80", ",", "2", ",", "74", ",", "49", ",", "113", ",", "49", ",", "51", ",",
    "92", ",", "39", ",", "8", ",", "92", ",", "81", ",", "116", ",", "62", 
   ",", "57", ",", "80", ",", "46", ",", "40", ",", "114", ",", "36", ",", 
   "75", ",", "56", ",", "33", ",", "76", ",", "9", ",", "55", ",", "56", ",",
    "59", ",", "81", ",", "65", ",", "45", ",", "28", ",", "60", ",", "55", 
   ",", "93", ",", "39", ",", "90", ",", "28", ",", "124", ",", "106", ",", 
   "16", ",", "20", ",", "104", ",", "119", ",", "8", ",", "109", ",", "26", 
   ",", "106", ",", "9", ",", "97", ",", "13", ",", "99", ",", "15", ",", 
   "119", ",", "20", ",", "105", ",", "117", ",", "98", ",", "103", ",", 
   "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", ",", "17", 
   ",", "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", "125", ",", 
   "125", ",", "99", ",", "126", ",", "119", ",", "102", ",", "30", ",", 
   "122", ",", "2", ",", "117"}], "}"}]], "Output",
 CellChangeTimes->{3.670932335786892*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData["key"], "Input",
 CellChangeTimes->{{3.6709323457405024`*^9, 3.670932350860003*^9}, {
  3.670932397413724*^9, 3.670932399844164*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "80", ",", "103", ",", "2", ",", "116", ",", "113", ",", "102", ",", "118", 
   ",", "25", ",", "99", ",", "8", ",", "19", ",", "23", ",", "116", ",", 
   "125", ",", "107", ",", "25", ",", "99", ",", "109", ",", "114", ",", 
   "102", ",", "14", ",", "121", ",", "115", ",", "31", ",", "9", ",", "117", 
   ",", "113", ",", "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", 
   "122", ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", "124", 
   ",", "106", ",", "16", ",", "20", ",", "104", ",", "119", ",", "8", ",", 
   "109", ",", "26", ",", "106", ",", "9", ",", "97", ",", "13", ",", "99", 
   ",", "15", ",", "119", ",", "20", ",", "105", ",", "117", ",", "98", ",", 
   "103", ",", "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
   ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", 
   "125", ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",", 
   "30", ",", "122", ",", "2", ",", "117"}], "}"}]], "Output",
 CellChangeTimes->{3.6709323510509787`*^9, 3.670932400130497*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BitXor", "[", 
  RowBox[{"key", ",", " ", 
   RowBox[{"blocks", "[", 
    RowBox[{"[", "2", "]"}], "]"}]}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "0", ",", "101", ",", "72", ",", "69", ",", "0", ",", "87", ",", "69", ",", 
   "69", ",", "68", ",", "0", ",", "79", ",", "70", ",", "0", ",", "67", ",", 
   "82", ",", "73", ",", "77", ",", "69", ",", "0", ",", "66", ",", "69", ",",
    "65", ",", "82", ",", "83", ",", "0", ",", "66", ",", "73", ",", "84", 
   ",", "84", ",", "69", ",", "82", ",", "0", ",", "70", ",", "82", ",", "85",
    ",", "73", ",", "84", ",", "14", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", 
   ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.6709323955366297`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"key", "=", 
  RowBox[{"{", 
   RowBox[{
   "80", ",", "118", ",", "2", ",", "116", ",", "113", ",", "102", ",", "118",
     ",", "25", ",", "99", ",", "8", ",", "19", ",", "23", ",", "116", ",", 
    "125", ",", "107", ",", "25", ",", "99", ",", "109", ",", "114", ",", 
    "102", ",", "14", ",", "121", ",", "115", ",", "31", ",", "9", ",", "117",
     ",", "113", ",", "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", 
    "122", ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", "124",
     ",", "106", ",", "16", ",", "20", ",", "104", ",", "119", ",", "8", ",", 
    "109", ",", "26", ",", "106", ",", "9", ",", "97", ",", "13", ",", "99", 
    ",", "15", ",", "119", ",", "20", ",", "105", ",", "117", ",", "98", ",", 
    "103", ",", "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122",
     ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", 
    "125", ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",", 
    "30", ",", "122", ",", "2", ",", "117"}], "}"}]}]], "Input",
 CellChangeTimes->{{3.6709325482426453`*^9, 3.670932554145982*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "80", ",", "118", ",", "2", ",", "116", ",", "113", ",", "102", ",", "118", 
   ",", "25", ",", "99", ",", "8", ",", "19", ",", "23", ",", "116", ",", 
   "125", ",", "107", ",", "25", ",", "99", ",", "109", ",", "114", ",", 
   "102", ",", "14", ",", "121", ",", "115", ",", "31", ",", "9", ",", "117", 
   ",", "113", ",", "111", ",", "5", ",", "4", ",", "127", ",", "28", ",", 
   "122", ",", "101", ",", "8", ",", "110", ",", "14", ",", "18", ",", "124", 
   ",", "106", ",", "16", ",", "20", ",", "104", ",", "119", ",", "8", ",", 
   "109", ",", "26", ",", "106", ",", "9", ",", "97", ",", "13", ",", "99", 
   ",", "15", ",", "119", ",", "20", ",", "105", ",", "117", ",", "98", ",", 
   "103", ",", "118", ",", "1", ",", "126", ",", "29", ",", "97", ",", "122", 
   ",", "17", ",", "15", ",", "114", ",", "110", ",", "3", ",", "5", ",", 
   "125", ",", "125", ",", "99", ",", "126", ",", "119", ",", "102", ",", 
   "30", ",", "122", ",", "2", ",", "117"}], "}"}]], "Output",
 CellChangeTimes->{3.670932554414055*^9, 3.671025989292212*^9, 
  3.671026028292445*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{
    "32", " ", "is", " ", "scalar", " ", "and", " ", "key", " ", "is", " ", 
     "vector"}], ",", " ", 
    RowBox[{"but", " ", 
     RowBox[{"that", "'"}], "s", " ", "OK"}]}], " ", "*)"}], 
  "\[AliasDelimiter]"}]], "Input",
 CellChangeTimes->{{3.671026003592248*^9, 3.671026024598495*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"key3", "=", 
  RowBox[{"BitXor", "[", 
   RowBox[{"32", ",", "key"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.670932944469812*^9, 3.670932952212975*^9}, {
  3.6710259966196613`*^9, 3.671025996683103*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "112", ",", "86", ",", "34", ",", "84", ",", "81", ",", "70", ",", "86", 
   ",", "57", ",", "67", ",", "40", ",", "51", ",", "55", ",", "84", ",", 
   "93", ",", "75", ",", "57", ",", "67", ",", "77", ",", "82", ",", "70", 
   ",", "46", ",", "89", ",", "83", ",", "63", ",", "41", ",", "85", ",", 
   "81", ",", "79", ",", "37", ",", "36", ",", "95", ",", "60", ",", "90", 
   ",", "69", ",", "40", ",", "78", ",", "46", ",", "50", ",", "92", ",", 
   "74", ",", "48", ",", "52", ",", "72", ",", "87", ",", "40", ",", "77", 
   ",", "58", ",", "74", ",", "41", ",", "65", ",", "45", ",", "67", ",", 
   "47", ",", "87", ",", "52", ",", "73", ",", "85", ",", "66", ",", "71", 
   ",", "86", ",", "33", ",", "94", ",", "61", ",", "65", ",", "90", ",", 
   "49", ",", "47", ",", "82", ",", "78", ",", "35", ",", "37", ",", "93", 
   ",", "93", ",", "67", ",", "94", ",", "87", ",", "70", ",", "62", ",", 
   "90", ",", "34", ",", "85"}], "}"}]], "Output",
 CellChangeTimes->{3.670932952598287*^9, 3.671025997340871*^9, 
  3.671026029936715*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"DecryptBlock", "[", "blk_", "]"}], ":=", 
  RowBox[{"BitXor", "[", 
   RowBox[{"key3", ",", "blk"}], "]"}]}]], "Input",
 CellChangeTimes->{3.6709329619503736`*^9}]
},
WindowSize->{1364, 748},
WindowMargins->{{0, Automatic}, {2, Automatic}},
FrontEndVersion->"10.0 for Linux x86 (64-bit) (September 9, 2014)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[558, 20, 182, 6, 32, "Input"],
Cell[743, 28, 139, 4, 32, "Input"],
Cell[CellGroupData[{
Cell[907, 36, 314, 10, 32, "Input"],
Cell[1224, 48, 16846, 342, 533, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[18107, 395, 426, 12, 32, "Input"],
Cell[18536, 409, 970, 14, 55, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19543, 428, 228, 6, 32, "Input"],
Cell[19774, 436, 1069, 16, 77, "Output"]
}, Open  ]],
Cell[20858, 455, 402, 10, 32, "Input"],
Cell[21263, 467, 366, 10, 32, "Input"],
Cell[CellGroupData[{
Cell[21654, 481, 289, 6, 32, "Input"],
Cell[21946, 489, 1681, 24, 55, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[23664, 518, 246, 5, 32, "Input"],
Cell[23913, 525, 1662, 23, 59, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[25612, 553, 242, 5, 32, "Input"],
Cell[25857, 560, 1660, 23, 55, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[27554, 588, 242, 5, 32, "Input"],
Cell[27799, 595, 1660, 23, 55, "Output"]
}, Open  ]],
Cell[29474, 621, 218, 5, 32, "Input"],
Cell[29695, 628, 247, 8, 32, "Input"],
Cell[CellGroupData[{
Cell[29967, 640, 224, 4, 32, "Input"],
Cell[30194, 646, 190, 2, 32, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30421, 653, 176, 3, 32, "Input"],
Cell[30600, 658, 196, 3, 32, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30833, 666, 152, 3, 32, "Input"],
Cell[30988, 671, 1053, 16, 77, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[32078, 692, 146, 2, 32, "Input"],
Cell[32227, 696, 1091, 16, 77, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[33355, 717, 148, 4, 32, "Input"],
Cell[33506, 723, 986, 15, 55, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[34529, 743, 1131, 17, 77, "Input"],
Cell[35663, 762, 1114, 17, 77, "Output"]
}, Open  ]],
Cell[36792, 782, 363, 10, 32, "Input"],
Cell[CellGroupData[{
Cell[37180, 796, 229, 5, 32, "Input"],
Cell[37412, 803, 1085, 17, 77, "Output"]
}, Open  ]],
Cell[38512, 823, 198, 5, 32, "Input"]
}
]
*)

(* End of internal cache information *)
